home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / scope / 101-125 / scopedisk103 / fishtank / docs / makefish.doc < prev    next >
Text File  |  1995-03-19  |  18KB  |  397 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.                  How to make and add your own "fishTank" fish
  8.  
  9.                                * makeFish.doc *
  10.                                --************--
  11.        
  12.             The fishTank was designed  to  accept  fish  other than just
  13.        those that it came with. Once  you  have had experience using the
  14.        fishTank for a while you may  want  to add some of your own fish.
  15.        This file explains how to build a fish of your own description to
  16.        add to the fishTank.
  17.             First you will need to draw  pictures  of  the fish's parts.
  18.        The parts need to be HAM-mode  brush  files.  Most major HAM-mode
  19.        paint packages will work. I used Photon Paint to make most of the
  20.        brushes and DigiPaint3 and Deluxe Photo Lab for the rest.
  21.             I would generally recommend making rectangular brushes (that
  22.        way you know what size they  are).  One  thing to make sure of is
  23.        that you use the same palette as the tank background pictures for
  24.        all the fish parts you draw.  You  can  do this by loading a tank
  25.        background picture (a .pix file) and  then clearing the screen to
  26.        color zero (black). Remember that  since this is HAM-mode you can
  27.        get any color, regardless of  whether  it  is in the palette. The
  28.        other  thing  to  be  sure   of   is  that  the  'background'  or
  29.        'transparent color' of all your brushes is color zero.
  30.             As a starting point for most  fish I would recommend drawing
  31.        two body brushes and three of each  of the fins (or perhaps three
  32.        body brushes and two of each  fin).  It's a good idea to keep all
  33.        the brushes of one fish in a  directory  named for that fish, and
  34.        to name all your brushes with a ".br"  extension to differentiate
  35.        them from other types of files  that  you  will be using (such as
  36.        ".pix" files for  background  pictures,  and  ".ascii"  files for
  37.        fish-headers that will be described later).
  38.        
  39.             Now that you've gone and drawn your  brushes, and saved them
  40.        to a disk, you're ready to make a "fish-header file". In order to
  41.        do this you will need two things:
  42.                  1. Some information about the  fish  - This information
  43.        is available in any number of  reference  books. I got most of my
  44.        information from Dr. Axelrod's  Mini-Atlas of Freshwater Aquarium
  45.        Fishes, but if you don't have a copy  of that handy, use whatever
  46.        reference books  on  fish  you  do  have.  Some  books  geared to
  47.        beginners may not have the  information  you need, if this is the
  48.        case you should try to find Dr. Axelrod's  Atlas or Mini-Atlas at
  49.        your local public library.
  50.                  Bare in mind that this fishTank  is  a  freshwater tank
  51.        and will  not  be  accurate  in  simulating  the  environment  of
  52.        saltwater or brackish-water fishes.
  53.                  2. A text editor - I've been  using  micro-Emacs, which
  54.        those of you who have  Workbench1.3  will be able to find on your
  55.        "Extras" disk in the tools directory (it's called mEmacs). If you
  56.        don't have a version  of  emacs  you  can  either  get  one off a
  57.        bulletin-board or use notepad  or  some other editor, but be sure
  58.        not to use any special fonts.
  59.  
  60.                                     Page 1
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.                  How to make and add your own "fishTank" fish
  74.  
  75.             Now you're ready to start. Edit  a  new  file and call it by
  76.        the name of your fish with  a  ".ascii"  extension  (for example:
  77.        swordtail.ascii). The format of  this  file is quite fussy; there
  78.        must be  no  extra  lines,  and  the  lines  I've  set  aside for
  79.        comments actually need to have comments  on them. I would suggest
  80.        copying one of the ".ascii"  files  you  already have (the ones I
  81.        wrote) and editing that. (For the examples I will use a swordtail
  82.        with two body brushes named  "body-1.br"  and  "body-2.br", three
  83.        tail brushes named "tail-1.br" etc., and three dorsal fin brushes
  84.        named "dfin-1.br" and so on for a  total of eight brushes. I will
  85.        also assume these brushes are  in  a directory called "swordtail"
  86.        on a disk called "fish:".)
  87.             When I  look  up  swordtail  (Xiphophorus  helleri)  in  the
  88.        Mini-Atlas I see the following information:
  89.                  pH                  7.3
  90.                  hardness            14 DH
  91.                  temperature         25 degrees Celsius
  92.                  lighting            bright, no sunlight
  93.                  aggressiveness       not aggressive
  94.                  tank conditions     densely planted
  95.                  swimming habits     all over the tank
  96.                  food                flakes
  97.             Now all you need to do is put  all  that information and the
  98.        names and locations of the brushes in your ".ascii" file.
  99.        
  100.        
  101.                  Building the fish-header (".ascii") File
  102.        -----------------------------------------------------------------
  103.        
  104.        
  105.             The first two lines should be comments. You will notice that
  106.        I use these lines for the fileName,  but you can use them any way
  107.        you want to.
  108.             Line #3: The first three characters on this line should be a
  109.        number describing the starting horizontal position for your fish.
  110.        Since this is a low-res screen  this  number must be between zero
  111.        and 320, but remember that your  fish  takes up space too, so the
  112.        upper limit to this  number  will  actually  be 320-the length of
  113.        your fish. The fishTank only looks  at the first three characters
  114.        on this line, so don't put any spaces  or tabs before the number.
  115.        If this number is a one or two  digit  number  you can put spaces
  116.        after it to get to three characters. You can, but do not need to,
  117.        put a comment on the remainder  of  this line, but make sure this
  118.        line is no more than  80  characters  long  (including  spaces  -
  119.        this shouldn't be a problem in most editors).
  120.             Line #4: This line  should  contain  the  vertical  starting
  121.        position. Use the same  three-character  format  as line #3. This
  122.        number needs to be between 12 (we  leave a few pixels of space at
  123.        the top for the menu bar)  and  200-the  height  of your fish. If
  124.        your fish's swimming habits are  not  all over the tank (like the
  125.  
  126.                                     Page 2
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.                  How to make and add your own "fishTank" fish
  140.  
  141.        swordtail in the  example),  this  number  should  be between the
  142.        fish's upper swimming limit and  its  lower  swimming limit minus
  143.        the height of the fish.
  144.             Line #5: The  horizontal  velocity  of  the  fish. Make this
  145.        either 1 or  -1 to start out with,  depending on weather you want
  146.        your fish to start  swimming  from  left  to right(1) or right to
  147.        left(-1). Once you've seen your fish swimming in the tank you can
  148.        use these to adjust its speed. Larger  values could be used here,
  149.        but keep them from being  to  large  or  small  (try using values
  150.        between -4 and 4), or your fish will not swim fluidly. Once again
  151.        keep the same three-digit  number  format as line #3. That is the
  152.        format that all the lines that contain numbers must have.
  153.             Line #6: The vertical  velocity  of  the  fish. Use the same
  154.        guidelines as line #5, but here  -1 will start your fish going up
  155.        and 1 will start it going down.
  156.             Line #7: Horizontal translation value. Make this number zero
  157.        for now. If you have  set  the  velocities  (lines  5  and  6) to
  158.        anything other than zero, the translations should remain zero.
  159.             Line #8: Vertical translation  value.  Use zero to start out
  160.        with. To control the motion of  the  fish you will either want to
  161.        set the velocities or  the  translations,  but  not both. With my
  162.        fish the velocities tend to yield a slightly smoother motion than
  163.        the translations, but  fish  could  be  drawn to work better with
  164.        either type of animation.
  165.             Line #9: Top of swimming  area.  This  should  be between 12
  166.        (for a fish that swims either all  over the tank or near the top)
  167.        and around 170 (for a bottom swimmer, like a catfish).
  168.             Line #10: Bottom of  swimming  area.  This  should be bigger
  169.        than the number on line #9, and no larger than 200.
  170.             Line #11: Optimum temperature  in  degrees  Celsius. For the
  171.        swordtail this should be 25. If you can only find the temperature
  172.        in Fahrenheit you will need to convert it with this formula:
  173.                  Celsius = ( Fahrenheit - 32 ) * 5 / 9
  174.             Line #12: Optimum pH. This is  the acidity of the water. You
  175.        need to have only one  digit  after  the  decimal point, any more
  176.        will mess things up. For the swordtail this number would be 7.3 .
  177.        Most fish will need the pH to  be  relatively close to 7.0, which
  178.        is neutral.
  179.             Line #13: Optimum hardness in  DH.  This number reflects the
  180.        amount of calcium in the water.  Lower numbers mean there is less
  181.        calcium. If you can't find the correct hardness for your fish, it
  182.        is usually safe to assume it to  be  about 9 or 10. The swordtail
  183.        likes a hardness of 14 which is  harder  than most other fish. If
  184.        you can only find this value in  "parts  per million" (or p.p.m.)
  185.        use this formula:
  186.                  DH = ppm / 18
  187.             Line #14: Length of your fish  in  pixels.  Just how long is
  188.        your fish? This will depend  on  how  long  the brushes are. This
  189.        value need not be  exact.  If  you  think  your  fish  is about a
  190.        quarter as wide as the whole screen  that would make it (... lets
  191.  
  192.                                     Page 3
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.                  How to make and add your own "fishTank" fish
  206.  
  207.        see the screen is 320 wide and 320 divided by 4 is ...) 80 pixels
  208.        wide. By the way if you make your fish very big it will slow down
  209.        the whole fishTank, and if it  is  300  pixels wide (or more) you
  210.        won't be able to put them in the tank  at all ( You'll be told it
  211.        is too big).
  212.             Line #15: Height of your fish  in  pixels.  This can also be
  213.        approximate. Since the screen is 200 pixels tall, if your fish is
  214.        about a quarter the height of the screen this number would be 50.
  215.             Line  #16:  Aggressiveness.   If   your  fish  is  called  a
  216.        "peaceful community  fish"  like  the  swordtail,  this should be
  217.        zero. Actually almost any fish  you  would  want to add would fit
  218.        this description. ( This  feature  has not yet been implemented -
  219.        so you can put anything here and not affect the fishTank. )
  220.             Line #17: Food type. What type  of  food best describes your
  221.        fish's regular diet. Enter the  number  that  corresponds to your
  222.        choice:
  223.                  0         flakes or other prepared foods
  224.                  1         worms or other small, living creatures
  225.                  2         live fish such as 'feeder' guppies
  226.                  3         vegetables or other plant materials
  227.                  4         goldfish flakes or other goldfish food
  228.        If you're not sure what  the  fish  normally  eats, and if it's a
  229.        fairly common aquarium  fish,  zero  is probably is a pretty safe
  230.        guess.  (Goldfish  flakes  is  a  different  code  than  'normal'
  231.        tropical  fish  flakes  because  goldfish  preparations  normally
  232.        contain a good deal more protein.)
  233.             Line #18: Type of lighting.  Just  about  any fish you would
  234.        want to have in your fishTank  will  require the 'normal' type of
  235.        lighting, so make  this  "1"  unless  you  find  something  quite
  236.        unusual about your fish's requirements. Codes are as follows:
  237.                  0         very bright with some sunlight
  238.                  1         'normal' - bright with no sunlight
  239.                  2         as dark as possible
  240.        ( This feature is not yet implemented. )
  241.             Line #19: Type of  tank  the  fish  prefers.  These  are the
  242.        codes:
  243.                  0         densely planted
  244.                  1         rocks, no plants
  245.                  2         gravel only (no rocks or plants)
  246.                  3         rocks, plants, and driftwood
  247.        ( This feature has not yet been implemented. )
  248.             Line #20: This line is  a  comment.  Put  anything  you want
  249.        here, just don't leave it out.
  250.             Line #21: The number of fish parts. In our swordtail example
  251.        this would be "3" since  that  fish  has  some  body-brushes some
  252.        tail-brushes and some dorsal-fin-brushes. Don't confuse this with
  253.        the total number of brushes which would be "8" for the swordtail.
  254.             Line #22: Number of brushes in  the  first fish part. In the
  255.        case of the swordtail we  might  want  this  to  be the number of
  256.        "body-brushes" (which is "2"). The order in which you specify the
  257.  
  258.                                     Page 4
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.                  How to make and add your own "fishTank" fish
  272.  
  273.        brushes in this list will be  the  order in which they are drawn,
  274.        so the brush that you want  to  be  on  top should be last in the
  275.        file.
  276.             Line #23: Name of the first brush.  This line should contain
  277.        the name of the first brush of  the  first  fish part. You should
  278.        include the path in this name, and  the full path and name should
  279.        take up no more than 40  characters  (try giving the directory or
  280.        the brushes shorter names if  this  is a problem). In the example
  281.        this line would be:
  282.                  fish:swordtail/body-1.br
  283.        The name must start at the beginning  of the line, and there must
  284.        not be any comments following it.
  285.             Line #24: The relative  horizontal  position  of this brush.
  286.        This number describes  where  the  upper  lefthand corner of this
  287.        brush should be relative to the other brushes in the fish. It can
  288.        be fairly tricky to come up  with  these numbers, and will likely
  289.        need some fine-tuning. A good  place  to  start may be to look at
  290.        what these values are in one of my  ".ascii" files. Choose one of
  291.        a fish that faces the same direction  and is about the same size,
  292.        and copy the values. You will  then  be  able to make adjustments
  293.        once you've seen your fish in the fishTank.
  294.             Line #25: Relative vertical position. See line #24.
  295.             Line #26: Name of  next  brush  in  this  fish  part. In the
  296.        example this would be  "fish:swordtail/body-2.br".  Use  the same
  297.        guidelines as line #23 for this and all the "brush name" lines.
  298.             Lines #27 and #28: Horizontal and vertical positions for the
  299.        brush named in the previous line. See line #24 for details.
  300.        
  301.        If there were more than  two  brushes  in  the first part of your
  302.        fish you would just keep going with  lines like 23 through 25 (or
  303.        26 through 28) until you  had  finished  all  the  brushes if the
  304.        first fish part.  When  you  had  finished  with  them  you would
  305.        continue with what  I  call  line  #29,  but  which  may  be in a
  306.        different place in your file.
  307.             Line #29: The number of brushes in  the second fish part. In
  308.        the example this could be  the  number  of  "tail brushes" (which
  309.        would be "3").  (...and  yes,  if  the  brushes  are not going to
  310.        overlap, it won't matter  what  order  you  have them in ...) See
  311.        line #22 for more details.
  312.             Lines #30, #31, and #32: Name and relative positions for the
  313.        first brush in the second  part  of  the  fish. The example lines
  314.        would be  "fish:swordtail/tail-1.br",  followed by two lines with
  315.        one number on each.
  316.        
  317.        By now this pattern should be looking very systematic to you. You
  318.        keep  entering  three-line   sequences  of  Name,  xPosition  and
  319.        yPosition until you run out of brushes in the fish part. Then you
  320.        use one line to contain the  number  of brushes in the next part,
  321.        and start the same three-line  sequences  again.  Just keep doing
  322.        this until you've given names  and  positions for all the brushes
  323.  
  324.                                     Page 5
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.                  How to make and add your own "fishTank" fish
  338.  
  339.        you have in your  fish.  Your  last  line  in  this section will,
  340.        obviously, be the yPosition of the last brush of the last part of
  341.        your fish. (p.s.- There's  nothing  wrong with having a fish part
  342.        with only one brush in it. Look  at  "snail.ascii" for an example
  343.        of this - it has only one "shell" brush.)
  344.        
  345.        Resume here once all your brush information  has been put in your
  346.        file.
  347.             Last Line: This line will contain  the name for this fish as
  348.        you would like to have it appear on the menu (sorry folks, no pun
  349.        was intended) . For the example "swordtail"  would do quite well.
  350.        Try to keep this name short, or the  menu will look sloppy. I use
  351.        common-names for the fish, and would  suggest you do the same, as
  352.        latin names  are  frequently  rather  lengthy.  As  you  may have
  353.        already figured out, you may not have a comment on this line, and
  354.        the name should start right at the beginning of the line.
  355.        
  356.        "Last Line" was somewhat of a misnomer  for the line that has the
  357.        menu-item name. It is actually  the  last  line the program looks
  358.        at, but you can have as many lines  of comments after this as you
  359.        want. The end of the file is  perhaps  the  best place to put any
  360.        special notes you might have about this fish.
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.                                     Page 6
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.